Estimating one or more rotation angles, or “pose”, of a person's head may yield information useful for various human-computer interactions. For example, head rotation angles may be useful as input in certain video games. In one prior approach, a classifier is trained to distinguish between a small number of discrete poses such as, for example, a frontal pose, a left profile and a right profile. This approach, however, produces pose estimations that are coarse and discrete, with output granularity limited to one of the pre-defined discrete poses. Additionally, by using a small number of discrete poses for its training data, the amount and variation of training data samples used by this approach are limited. This prior approach also has difficulty properly classifying poses taken under varying lighting conditions.
In another approach, certain facial points, such as eye corner, mouth corner and nose tip, are detected and used to estimate a head pose. One drawback with this approach is that it requires computing a significant amount of information that exceeds the relevant data needed for the estimation, and is therefore computationally demanding and expensive. Significant initialization of a particular user's facial points may also be required.